Online analytical processing (OLAP) is a key part of most data warehouse and business analysis systems. OLAP services provide for fast analysis of multidimensional information. For this purpose, OLAP services provide for multidimensional access and navigation of data in an intuitive and natural way, providing a global view of data that can be drilled down into particular data of interest. Speed and response time are important attributes of OLAP services that allow users to browse and analyze data online in an efficient manner. Further, OLAP services typically provide analytical tools to rank, aggregate, and calculate lead and lag indicators for the data under analysis.
One of the fundamental structures used in OLAP systems is the cube. Cubes are multi-dimensional objects containing measures at specific coordinates specified by dimension members. In this context, a dimension is a structural attribute of a cube that is a list of members of a similar type in the user's perception of the data. Typically, there is a hierarchy associated with the dimension. For example, a time dimension can consist of days, weeks, months, and years, while a geography dimension can consist of cities, states/provinces, and countries. In the dimension hierarchy, lower members of the hierarchy specify the most detailed data in the dimension, while the upper members of the hierarchy identify less detailed, more aggregated data. Thus the dimension members act as indices for identifying a particular cell or range of cells within a multidimensional array. Each cell contains a value or values, also referred to as a measurement. For example, a measurement can comprise budget or sales data such as dollar amounts and quantity sold.
It is often the case that a user desires to perform “what if” analysis using the data provided by OLAP services. In “what-if” analysis, a user interactively changes the data value for one or more cell measurements, and the impact of the change is returned to the user. As an example, a finance manager preparing a budget may perform “what-if” analysis to answer the question “what will happen to profitability if I increase the research and development budget by 10% and cut marketing by 15%?” In this situation, the finance manager would want to adjust the appropriate cells in the OLAP database to reflect the appropriate changes to the underlying data. The updated cell values can then be used to derive values for dependent cells higher in the dimension hierarchy that summarize data contained in lower level cells.
In order to perform what-if analysis in previous systems, the user locates the appropriate cell, and writes the adjusted value for the measurement. In the above example, the finance manager would obtain the current budget values, manually determine the new values, and then cause the system to write the new values into the cell measurement data for the marketing budget and the research and development budget.
There are several disadvantages to this process. First, the old cell measurement data is overwritten, and therefore lost. The only way to recover the old value is for the user to either remember what the value was, and manually restore it, or to obtain the value from a database backup (if such a backup exists). In other words, there is no way to automatically “roll back” a change to the data.
Second, the changes applied by the user are immediately exposed to other users of the system, leading to undesirable effects. For example, assume that two users are using the budget data, the finance manager and a marketing manager. Further assume that the marketing manager wants to determine what the marketing department spent in the last year in order to determine how many new employees to hire. In the above example, after the finance manager has updated the cell data, the changes are also exposed to the marketing manager. The marketing manager will be unaware that the finance manager has updated the data, and will be presented hypothetical, rather than actual data. Thus, the marketing manager's decisions may be flawed because they are not based on actual data.
As can be seen from the above, there is a need in the art for a system that provides the ability to perform “what-if” analysis OLAP databases. The system should provide the ability to change OLAP data without exposing the changes to all users of the system until it is desirable to do so. In addition, the system should provide a means for rolling back selected changes.